﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.ClienteWs;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.SocialWs;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.EventoWs;

namespace PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.GUI
{
    public partial class Cliente : System.Web.UI.MasterPage
    {


        ObjetoAmizade[] listaAmizadesRecebidasPendentes;
        ObjetoAmizade[] listaAmizadesEnviadasPendentes;
        ObjetoEvento[] listaConvitesRecebidos;
     

        ObjetoCliente cliente = new ObjetoCliente();
        ObjetoCliente cliente2 = new ObjetoCliente();
        ObjetoCliente cliente3 = new ObjetoCliente();

        PubClub_Social_WS webServiceSocial = new PubClub_Social_WS();
        PubClub_Evento_WS webServiceEventos = new PubClub_Evento_WS();
        PubClub_Cliente_WS webServiceCliente = new PubClub_Cliente_WS();

        TableRow linhaAviso;
        TableCell celulaAviso;
        Label labelAviso;



        protected void Page_Load(object sender, EventArgs e)
        {


            if (Session["Cliente"] == null)
            {
                Response.Redirect("Login.aspx");
            }
            else
            {
                cliente = webServiceCliente.GetCliente(Convert.ToInt32(Session["Cliente"]));
                HyperLink2.Text = cliente.Nome;
                HyperLink2.NavigateUrl = "~/GUI/PerfilCliente.aspx";
              

            }

            if (Request.QueryString["Evento"] != null)
            {
                lbvaviso.Text = Request.QueryString["Evento"].ToString();
                lbvaviso.Visible = true;
                lbvaviso.ForeColor = System.Drawing.Color.Green;
                lbvaviso.Focus();

            }

            if (Request.QueryString["SucessoResponderEvento"] == "1")
            {
                lbvaviso.Visible = true;
                lbvaviso.ForeColor = System.Drawing.Color.Green;
                lbvaviso.Text = "Você confirmou sua presença no evento!";
            }

            if (Request.QueryString["SucessoResponderEvento"] == "2")
            {
                lbvaviso.Visible = true;
                lbvaviso.ForeColor = System.Drawing.Color.Red;
                lbvaviso.Text = "Convite para o envento recusado!";
            }

            if (Request.QueryString["CondicaoEvento"] == "1")
            {
                lbvaviso.Visible = true;
                lbvaviso.ForeColor = System.Drawing.Color.Green;
                lbvaviso.Text = "Lista de amigos enviada com sucesso.";
            }



            TableHeaderRow linhaCabecalhoCentralDeNotificacoes = new TableHeaderRow();
            TableHeaderCell celulaCabecalhoCentralDeNotificacoes = new TableHeaderCell();
            Label labelCabecalhoCentralDeNotificacoes = new Label();

            labelCabecalhoCentralDeNotificacoes.Text = "Central de notificações";
            celulaCabecalhoCentralDeNotificacoes.Controls.Add(labelCabecalhoCentralDeNotificacoes);
            linhaCabecalhoCentralDeNotificacoes.Cells.Add(celulaCabecalhoCentralDeNotificacoes);
            tabelaCentralDeNotificacoes.Rows.Add(linhaCabecalhoCentralDeNotificacoes);

            TableHeaderRow linhaCabecalhoMeusAmigos = new TableHeaderRow();
            TableHeaderCell celulaCabecalhoMeusAmigos = new TableHeaderCell();
            Label labelCabecalhoMeusAmigos = new Label();
            

            //listaMinhasAmizades = webServiceSocial.MinhasAmizades(cliente.ClienteId);

            //labelCabecalhoMeusAmigos.Text = "Meus amigos" + "(" + listaMinhasAmizades.Count() + ")";
            //celulaCabecalhoMeusAmigos.Controls.Add(labelCabecalhoMeusAmigos);
            //linhaCabecalhoMeusAmigos.Cells.Add(celulaCabecalhoMeusAmigos);
            //tabelaMeusAmigos.Rows.Add(linhaCabecalhoMeusAmigos);

            //for (int i = 0; i <= 4; i++)
            //{
            //    TableRow linhaNomesAmigos = new TableRow();
            //    TableCell celulaNomesAmigos = new TableCell();
            //    HyperLink hyperLinkNomesAmigos = new HyperLink();                

            //    if (i > listaMinhasAmizades.Count()-1)
            //    {
            //        break;
            //    }
            //    else
            //    {
            //        if (i % 2 != 0)
            //        {
            //            linhaNomesAmigos.CssClass = "odd";
            //        }

            //        ObjetoCliente amigo = webServiceCliente.GetCliente(listaMinhasAmizades[i].ClienteId2);
            //        hyperLinkNomesAmigos.Text = amigo.Nome;
            //        hyperLinkNomesAmigos.NavigateUrl = "~/GUI/ClienteVerPerfilAmigo.aspx?AmigoId=" + amigo.ClienteId;
            //        celulaNomesAmigos.Controls.Add(hyperLinkNomesAmigos);
            //        linhaNomesAmigos.Cells.Add(celulaNomesAmigos);
            //        tabelaMeusAmigos.Rows.Add(linhaNomesAmigos);
            //    }

                
            //}

            //TableRow linhaVerTodosAmigos = new TableRow();
            //TableCell celulaVerTodosAmigos = new TableCell();
            //HyperLink hyperLinkVerTodosAmigos = new HyperLink();

            //hyperLinkVerTodosAmigos.Text = "Ver todos...";
            //hyperLinkVerTodosAmigos.NavigateUrl = "~/GUI/MinhasAmizades.aspx";
            //celulaVerTodosAmigos.Controls.Add(hyperLinkVerTodosAmigos);
            //linhaVerTodosAmigos.Cells.Add(celulaVerTodosAmigos);
            //tabelaMeusAmigos.Rows.Add(linhaVerTodosAmigos);


            #region Eventos pendentes

            listaConvitesRecebidos = webServiceEventos.EventosConvidados(cliente.ClienteId, true, 3);

            if (listaConvitesRecebidos.Count() == 0)
            {
                linhaAviso = new TableRow();
                celulaAviso = new TableCell();
                labelAviso = new Label();

                labelAviso.Text = "Nenhum convite para evento pendente.";
                labelAviso.ForeColor = System.Drawing.Color.Red;
                celulaAviso.Controls.Add(labelAviso);
                linhaAviso.Cells.Add(celulaAviso);
                linhaAviso.CssClass = "odd";
                tabelaCentralDeNotificacoes.Rows.Add(linhaAviso);
            }
            else
            {
                linhaAviso = new TableRow();
                celulaAviso = new TableCell();
                labelAviso = new Label();

                labelAviso.Text = "Você recebeu convites para os seguinte(s) eventos(s):";
                labelAviso.ForeColor = System.Drawing.Color.Green;
                celulaAviso.Controls.Add(labelAviso);
                linhaAviso.Cells.Add(celulaAviso);
                tabelaCentralDeNotificacoes.Rows.Add(linhaAviso);

                foreach (var item in listaConvitesRecebidos)
                {
                    TableRow linhaConvitesParaEventosPendentes = new TableRow();
                    TableCell celulaTituloEventoPendente = new TableCell();
                    HyperLink hyperLinkTituloEventoPendente = new HyperLink();

                    hyperLinkTituloEventoPendente.Text = item.Titulo;
                    hyperLinkTituloEventoPendente.NavigateUrl = "~/GUI/ClienteAceitarConviteEvento.aspx?EventoId=" + item.Id + "&EstabelecimentoId=" + item.EstabelecimentoId + "&OrganizadorId=" + item.Organizador;
                    celulaTituloEventoPendente.Controls.Add(hyperLinkTituloEventoPendente);
                    linhaConvitesParaEventosPendentes.Cells.Add(celulaTituloEventoPendente);
                    tabelaCentralDeNotificacoes.Rows.Add(linhaConvitesParaEventosPendentes);

                }


            }

            #endregion

            #region solicitações enviadas

            listaAmizadesEnviadasPendentes = webServiceSocial.SolicitacoesEnviadasPendentes(Convert.ToInt32(Session["Cliente"]));

            if (listaAmizadesEnviadasPendentes.Count() == 0)
            {
                linhaAviso = new TableRow();
                celulaAviso = new TableCell();
                labelAviso = new Label();

                labelAviso.Text = "Nenhuma solicitação de amizade enviada pendente.";
                labelAviso.ForeColor = System.Drawing.Color.Red;
                celulaAviso.Controls.Add(labelAviso);
                linhaAviso.Cells.Add(celulaAviso);
                linhaAviso.CssClass = "odd";
                tabelaCentralDeNotificacoes.Rows.Add(linhaAviso);
            }
            else
            {
                linhaAviso = new TableRow();
                celulaAviso = new TableCell();
                labelAviso = new Label();

                labelAviso.Text = "Solicitações de amizade enviada(s) pendente(s):";
                labelAviso.ForeColor = System.Drawing.Color.Green;
                celulaAviso.Controls.Add(labelAviso);
                linhaAviso.Cells.Add(celulaAviso);
                tabelaCentralDeNotificacoes.Rows.Add(linhaAviso);


                foreach (var item in listaAmizadesEnviadasPendentes)
                {
                    TableRow linhaAmizadesEnviadasPendentes = new TableRow();
                    TableCell celulaNomePendente = new TableCell();
                    HyperLink hyperLinkNomePendente = new HyperLink();

                    cliente3 = webServiceCliente.GetCliente(item.ClienteId2);
                    hyperLinkNomePendente.Text = cliente3.Nome;
                    hyperLinkNomePendente.NavigateUrl = "~/GUI/PerfilAmizade.aspx?solicitacoeEnviadasClienteId=" + cliente3.ClienteId;
                    celulaNomePendente.Controls.Add(hyperLinkNomePendente);
                    linhaAmizadesEnviadasPendentes.Cells.Add(celulaNomePendente);
                    tabelaCentralDeNotificacoes.Rows.Add(linhaAmizadesEnviadasPendentes);

                }

            }

            //if (solicitacoesEnviadas.Length > 0)
            //{
            //    tabelaSolicitacoesEnviadas.Visible = true;
            //    linha2 = new TableRow();
            //    celula3 = new TableCell();
            //    texto3 = new Label();

            //    texto3.Text = "Solicitações de amizade enviadas pendentes";
            //    texto3.Font.Bold = true;
            //    celula3.Controls.Add(texto3);
            //    linha2.Cells.Add(celula3);
            //    tabelaSolicitacoes.Rows.Add(linha2);

            //    foreach (var item in solicitacoesEnviadas)
            //    {
            //        cliente3 = webServiceCliente.GetCliente(item.ClienteId);
            //        tabelaSolicitacoesEnviadas.Visible = true;


            //        linha2 = new TableRow();
            //        texto4 = new HyperLink();
            //        celula4 = new TableCell();



            //        texto4.Text = cliente3.Nome;
            //        celula4.Controls.Add(texto4);
            //        linha2.Cells.Add(celula4);
            //        tabelaSolicitacoesEnviadas.Rows.Add(linha2);



            //        texto4.NavigateUrl = "~/GUI/AceitarAmizade.aspx?clienteId=" + cliente3.ClienteId;
            //    }
            //}
            //else
            //{
            //    linha2 = new TableRow();
            //    texto4 = new HyperLink();
            //    celula4 = new TableCell();

            //    texto4.Text = "Nenhuma solicitação de amizade enviadas pendentes";
            //    celula4.Controls.Add(texto4);
            //    linha2.Cells.Add(celula4);
            //    linha2.CssClass = "odd";
            //    tabelaSolicitacoesEnviadas.Rows.Add(linha2);
            //    tabelaSolicitacoesEnviadas.Visible = true;

            //}

            #endregion

            #region Tratando amizades recebidas


            listaAmizadesRecebidasPendentes = webServiceSocial.SolicitacoesPendentes(Convert.ToInt32(Session["Cliente"]));

            if (listaAmizadesRecebidasPendentes.Count() == 0)
            {
                linhaAviso = new TableRow();
                celulaAviso = new TableCell();
                labelAviso = new Label();

                labelAviso.Text = "Nenhuma solicitação de amizade recebida pendente.";
                labelAviso.ForeColor = System.Drawing.Color.Red;
                celulaAviso.Controls.Add(labelAviso);
                linhaAviso.Cells.Add(celulaAviso);
                linhaAviso.CssClass = "odd";
                tabelaCentralDeNotificacoes.Rows.Add(linhaAviso);
            }
            else
            {
                linhaAviso = new TableRow();
                celulaAviso = new TableCell();
                labelAviso = new Label();


                labelAviso.Text = "Solicitações de amizade recebida(s) pendente(s):";
                labelAviso.ForeColor = System.Drawing.Color.Green;
                celulaAviso.Controls.Add(labelAviso);
                linhaAviso.Cells.Add(celulaAviso);
                linhaAviso.CssClass = "odd";
                tabelaCentralDeNotificacoes.Rows.Add(linhaAviso);

                foreach (var item in listaAmizadesRecebidasPendentes)
                {
                    TableRow linhaAmizadesRecebidasPendentes = new TableRow();
                    TableCell celulaNomePendente = new TableCell();
                    HyperLink hyperLinkNomePendente = new HyperLink();

                    cliente2 = webServiceCliente.GetCliente(item.ClienteId);
                    hyperLinkNomePendente.Text = cliente2.Nome;
                    hyperLinkNomePendente.NavigateUrl = "~/GUI/AceitarAmizade.aspx?clienteId=" + cliente2.ClienteId;
                    celulaNomePendente.Controls.Add(hyperLinkNomePendente);
                    linhaAmizadesRecebidasPendentes.Cells.Add(celulaNomePendente);

                    tabelaCentralDeNotificacoes.Rows.Add(linhaAmizadesRecebidasPendentes);
                }

            }



            //if (listaAmizadesPendentes.Length > 0)
            //{
            //    tabelaSolicitacoes.Visible = true;
            //    linha = new TableRow();
            //    celula = new TableCell();
            //    texto = new Label();

            //    texto.Text = "Solicitações de amizade pendentes";
            //    texto.Font.Bold = true;
            //    celula.Controls.Add(texto);
            //    linha.Cells.Add(celula);
            //    tabelaSolicitacoes.Rows.Add(linha);

            //    SolicitacoesAmizades();
            //}
            #endregion

        }



        protected void LinkButton1_Click(object sender, EventArgs e)
        {
            Session.Remove("Cliente");
            Response.Redirect("Login.aspx");
        }
    }
}
